前言最近在做需求的时候,涉及到登录token,产品提出一个问题:能不能让token过期时间长一点,我频繁的要去登录。前端:后端,你能不能把token过期时间设置的长一点。后端:可以,但是那样做不安全,你可以用更好的方法。前端:什么方法?后端:给你刷新token的接口,定时去刷新token前端:好,让我思考一下需求当token过期的时候,刷新token,前端需要做到无感刷新token,即刷token时要做到用户无感知,避免频繁登录。实现思路方法一:后端返回过期时间,前端判断token过期时间,去调用刷新token接口缺点:需要后端额外提供一个token过期时间的字段;使用了本地时间判断,若本地时
前言最近在做需求的时候,涉及到登录token,产品提出一个问题:能不能让token过期时间长一点,我频繁的要去登录。前端:后端,你能不能把token过期时间设置的长一点。后端:可以,但是那样做不安全,你可以用更好的方法。前端:什么方法?后端:给你刷新token的接口,定时去刷新token前端:好,让我思考一下需求当token过期的时候,刷新token,前端需要做到无感刷新token,即刷token时要做到用户无感知,避免频繁登录。实现思路方法一:后端返回过期时间,前端判断token过期时间,去调用刷新token接口缺点:需要后端额外提供一个token过期时间的字段;使用了本地时间判断,若本地时
1、axios的二次封装BiliBili作者原地址,多多支持npmiaxios//下载axios首先创建两个文件夹在src目录下;api和config先在config文件夹下建立一个index.js;具体代码如下exportdefault{baseUrl:{dev:"http://localhost:8082/mhy", //开发环境pro:"http://xxx.xx.xx.xx:8082/mhy", //上线环境}}当然我这里是因为我主要写后端springboot,就没有使用什么第三方前端的请求工具在api文件夹下建立一个axios.js;对axios进行二次封装importaxiosfr
1、axios的二次封装BiliBili作者原地址,多多支持npmiaxios//下载axios首先创建两个文件夹在src目录下;api和config先在config文件夹下建立一个index.js;具体代码如下exportdefault{baseUrl:{dev:"http://localhost:8082/mhy", //开发环境pro:"http://xxx.xx.xx.xx:8082/mhy", //上线环境}}当然我这里是因为我主要写后端springboot,就没有使用什么第三方前端的请求工具在api文件夹下建立一个axios.js;对axios进行二次封装importaxiosfr
问题:后端返回文件流,前端使用axios下载或者在线预览下载文件流importaxiosfrom'axios'//设置响应类型为blobaxios.get('/api/app/xxx/downloadExcel',{responseType:'blob'}).then(resp=>{lettemp=document.createElement('a')//创建a标签temp.download='excel.xls'//设置下载名称//创建blob对象,在javascript中blob代表一个二进制流对象,不可修改constblob=newBlob([resp.data],{//类型从响应头中获
问题:后端返回文件流,前端使用axios下载或者在线预览下载文件流importaxiosfrom'axios'//设置响应类型为blobaxios.get('/api/app/xxx/downloadExcel',{responseType:'blob'}).then(resp=>{lettemp=document.createElement('a')//创建a标签temp.download='excel.xls'//设置下载名称//创建blob对象,在javascript中blob代表一个二进制流对象,不可修改constblob=newBlob([resp.data],{//类型从响应头中获
创建axios简单的封装一下axios请求,包含了请求前的处理,返回结果和请求异常处理importaxiosfrom"axios";importstorefrom"../store.js";//封装axiosaxios.defaults.headers["Content-Type"]="application/json";//创建axios实例constservice=axios.create({baseURL:process.env.NODE_ENV=="dev"?"/api":process.env.VUE_APP_BASE_API,//本地测试跨域配置timeout:130000,//请
创建axios简单的封装一下axios请求,包含了请求前的处理,返回结果和请求异常处理importaxiosfrom"axios";importstorefrom"../store.js";//封装axiosaxios.defaults.headers["Content-Type"]="application/json";//创建axios实例constservice=axios.create({baseURL:process.env.NODE_ENV=="dev"?"/api":process.env.VUE_APP_BASE_API,//本地测试跨域配置timeout:130000,//请
1.vite+TS+Vue3npmcreateviteProjectname:...yourProjectNameSelectaframework:>>VueSelectavariant:>>Typescrit2.修改vite基本配置配置Vite{#configuring-vite}|Vite中文网(vitejs.cn)vite.config.tsimport{defineConfig}from'vite'importvuefrom'@vitejs/plugin-vue'import{resolve}from'path';//编辑器提示path模块找不到,可以cnpmi@types/node-
1.vite+TS+Vue3npmcreateviteProjectname:...yourProjectNameSelectaframework:>>VueSelectavariant:>>Typescrit2.修改vite基本配置配置Vite{#configuring-vite}|Vite中文网(vitejs.cn)vite.config.tsimport{defineConfig}from'vite'importvuefrom'@vitejs/plugin-vue'import{resolve}from'path';//编辑器提示path模块找不到,可以cnpmi@types/node-